#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
typedef struct estcarton
{
	int numeros[5][5];
	int booleanos[5][5];
	
}carton, *pcarton;


int main(int argc, char ** argv)
{
	//[1]-nombre, [2]-numerocartones, [3]-ficherocartones, [4]-ficherocontodoscartones
	FILE *stream;
	FILE *fichero;
	int i = 0, j = 0, numero=0,x = 0,y=0,comp=13;
	char mystring[100];
	char aux[32];
	carton cartones[atoi(argv[2])];


	stream = fopen ("todoscartones.txt", "r");
	fichero = fopen (argv[3], "w");
	//signal(SIGUSR1,sigusr1_handler); 
	

	while(!feof(stream))
	{
		
		fscanf(stream,"%s",mystring);
	
		if(strcmp(mystring,argv[1])==0)//si es mi carton
		{	
			
			for(i=0;i<5;i++)
			{
				for(x=0;x<5;x++)
				{
					fscanf(stream, "%s", mystring);//voy guardando numero
					cartones[j].numeros[i][x] = atoi(mystring);//almacenando en el carton
					cartones[j].numeros[i][x] = 0;//iniciando booleanos
				
					//sprintf(aux,"%d ",numero);//convierto entero en char				
					fprintf(fichero, mystring);//lo almaceno en mi fichero
					fprintf(fichero, " ");
				}
			}
			fprintf(fichero, "\n");
			j++;//paso al siguiente carton
		}
	}
	fclose(stream);
	fclose(fichero);
	//termino de rellenar cartones y guardarlos en mi propio archivo
	
	while(read(STDIN_FILENO,&numero,sizeof(numero))!=EOF)
	{
		/*for(y=0;y<atoi(argv[2]);y++)//recorremos cartones
		{
			for(i=0;i<5;i++)//recorremos filas
			{
				for(x=0;x<5;x++)//recorremos columnas
				{
					if(strcmp(numero,cartones[y].numeros[i][x])==0)
					{
						cartones[y].booleanos[i][x]=1;
					}
				}
			}
		}*/
		if(strcmp(numero, comp)==0)
		{
			//break;
		}
	}
	kill(getppid(),SIGINT);
	close(STDIN_FILENO);
	exit(0);
}
